#ifndef __TULING_UPLOAD_H__
#define __TULING_UPLOAD_H__

typedef struct tagUploadRsp
{
	int nCode;
	char strDesc[64];
	char strPayload[128];
}UploadRsp; 

class TulingUpload
{
public:
	static TulingUpload &Instance();
	~TulingUpload();
	class IOnEvent
	{
	public:
		virtual int on_upload(UploadRsp * pUploadRsp)=0;
	};	 
	void SetEventListener(IOnEvent* _pEvent);
	void Init();
	void Start(); 
	void on_start();
	void on_data(const void * pData,int nLen);
	void on_stop();
private:
	TulingUpload(); 
private:
	class TulingUploadImpl;
	static TulingUpload	mInstance;	
	TulingUploadImpl *mUploadImpl;
};

#endif
